/***************************************************************************
 *   Copyright (C) 2003 by David Saxton                                    *
 *   david@bluehaze.org                                                    *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 ***************************************************************************/

#include "libraryitem.h"

#include <KIconLoader>

#include <QImage>
#include <QStandardPaths>

LibraryItem::LibraryItem(QStringList idList, const QString &name, const QString &category, QPixmap icon, Type type, createItemPtr _createItem)
{
    m_idList = idList;
    m_name = name;
    m_category = category;
    m_icon_full = icon;
    m_type = type;
    createItem = _createItem;
    createIcon16();
}

LibraryItem::LibraryItem(QStringList idList, const QString &name, const QString &category, const QString &iconName, Type type, createItemPtr _createItem)
{
    m_idList = idList;
    m_name = name;
    m_category = category;
    m_icon_full.load(QStandardPaths::locate(QStandardPaths::AppDataLocation, "icons/" + iconName));
    m_type = type;
    createItem = _createItem;
    createIcon16();
}

LibraryItem::LibraryItem(QStringList idList, const QString &name, const QString &category, Type type, createItemPtr _createItem)
{
    m_idList = idList;
    m_name = name;
    m_category = category;
    m_type = type;
    createItem = _createItem;
    createIcon16();
}

LibraryItem::~LibraryItem()
{
}

void LibraryItem::createIcon16()
{
    if (m_icon_full.isNull())
        m_icon_full = KIconLoader::global()->loadIcon("null", KIconLoader::Small);

    // 	const int size = KIcon::SizeSmallMedium;
    // 	const int size = 22;
    const int size = 16;

    if (m_icon_full.width() == size && m_icon_full.height() == size) {
        m_icon_16 = m_icon_full;
        return;
    }

    QImage im = m_icon_full.toImage();
    // im = im.smoothScale( size, size, Qt::ScaleMin ); // 2018.11.30
    im = im.scaled(QSize(size, size), Qt::KeepAspectRatio, Qt::SmoothTransformation);
    m_icon_16.convertFromImage(im);
}

QString LibraryItem::activeID() const
{
    return m_idList.isEmpty() ? "" : m_idList[0];
}
